Lịch sử WebKit

Nguồn gốc

WebKit bắt đầu khởi công từ năm 2002 khi Apple Inc. tạo một dự án phần mềm fork từ dự án của KDE là cỗ máy bố cục HTML KHTML và Cỗ máy JavaScript của KDE (KJS). Các nhà phát triển Apple giải thích trong một e-mail gửi tới các nhà phát triển KDE[3] rằng các bộ máy này cho phép phát triển dễ hơn các công nghệ khác vì tính nhỏ gọn (ít hơn 140,000 dòng mã nguồn), thiết kế sáng sủa và hợp chuẩn. KHTML và KJS đã được chuyển thể sang Mac OS X với sự giúp đỡ của thư viện chuyển đổi và đổi tên thành WebCore và JavaScriptCore[3]. JavaScriptCore được thông báo đến danh sách thư của KDE vào tháng 6 năm 2002, cùng với bản ra mắt đầu tiên với những thay đổi của Apple.[4] WebCore được thông báo tại Macworld Expo vào tháng 1 năm 2003 bởi Apple CEO Steve Jobs với đợt phát hành của trình duyệt Safari. JavaScriptCore lần đầu tiên được phát hành kèm với Mac OS X v10.2 để sử dụng như là một bộ khung riêng để chạy ứng dụng Sherlock, trong khi WebCore lần đầu đi kèm với bản beta đầu tiên của Safari. Mac OS X v10.3 là hệ điều hành đầu tiên của Apple có WebKit, mặc dù nó đã xuất hiện trước đó ở một số ít bản 10.2.

Tuy vậy, việc trao đổi các bản vá mã nguồn giữa hai phiên bản KHTML đã trở nên khó khăn do hai bên có cách viết mã khác nhau.[5] Một lý do nữa là vì Apple làm việc với phiên bản KHTML của họ một năm trước khi đưa fork cho công chúng.

Khó chịu về điều đó, dự án KDE đã có thể kết hợp các thay đổi đó để củng cố tốc độ kết xuất của KHTML và thêm vào các chức năng, bao gồm việc vượt qua bài kiểm tra Acid2. Konqueror 3.5 đã vượt qua bài kiểm tra Acid2, phiên bản được ra mắt sau khi Apple mở hệ thống CVS và Cơ sở dữ liệu lỗi phần mềm cho WebKit.

Theo Apple, một số thay đổi gặp rắc rối với các tính năng đặc trưng của Mac OS X (vd., Objective-C, KWQ, các hàm gọi Mac OS X) không có trong KHTML của KDE, cần có một chiến lược phát triển khác.[6]

Tranh cãi

Tại một thời điểm các nhà phát triển KHTML nói rằng họ không thể chấp nhận được những thay đổi của Apple và cho rằng mối quan hệ hai bên là một "thất bại cay đắng".[7] Apple đã gửi các sửa đổi của họ trong một gói các bản vá lỗi lớn chứa rất nhiều sửa đổi lớn với tài liệu không tương xứng, thường dùng để thêm vào các chức năng trong tương lai. Dù vậy, các bản vá này đã gây khó khăn cho các nhà phát triển KDE để tích hợp chúng vào KHTML. Đi xa hơn nữa, Apple còn đòi hỏi các nhà phát triển KDE ký vào bản cam kết không tiết lộ trước khi xem mã nguồn của Apple kể cả việc họ không truy cập được vào cơ sở dữ liệu lỗi của Apple.[8]

Trong khoảng thời gian ly khai được mọi người biết đến, nhà phát triển KDE pipitas gửi viết một bài cho rằng các nhà phát triển KHTML đã cố gắng thêm các sửa đổi tăng cường của Safari (nhưng không phải tất cả) từ WebCore về KHTML, và họ cũng luôn luôn ủng hộ các cải tiến của Apple và đến bây giờ vẫn thế. Bài viết cũng nói đến việc Apple đã bắt đầu liên hệ với các nhà phát triển KHTML để thảo luận về việc cải thiện mối quan hệ giữa hai bên và việc hợp tác trong tương lai.[9]

Từ khi tin tức về bản fork xuất hiện tren báo chí, Apple đã cung cấp bản chi tiết những thay đổi trong KHTML của họ ở một kho chứa CVS.[10] Bắt đầu từ lúc mã nguồn của Apple xuất hiện trên CVS, các nhà phát triển của cả hai bên đã tăng cường hợp tác. Rất nhiều nhà phát triển KHTML đã trở thành nhà phê bình và là người gửi bản Apple WebKit lên kho chứa SVN.

Đội phát triển WebKit cũng đã hồi sửa lại những sửa đổi đặc trưng của Apple về mã gốc của WebKit và củng cố khả năng tương thích đa nền tảng cho WebKit.[11]

Nguồn mở

Vào ngày 7 tháng 6, 2005, nhà phát triển Safari Dave Hyatt thông báo trên blog của anh rằng Apple đã mở mã nguồn WebKit (trước đó, chỉ có WebCore và JavaScriptCore là nguồn mở) và cho phép truy cập vào cây CVS của WebKit và công cụ Bugzilla.[10] Tin này cũng được thông báo trong Hội nghị các nhà phát triển thế giới của Apple năm 2005 bởi tổng chủ tịch kỹ sư phần mềm Apple Bertrand Serlet.

Vào giữa tháng 12 năm 2005 việc hỗ trợ cho định dạng SVG đã được cho vào bản chuẩn[12] và vào gần tháng 1 năm 2006 mã nguồn đã được chuyển từ CVS thành Subversion. Tháng tiếp theo trang mạng Ars Technica gửi một bài viết thông báo rằng đội ngũ phát triển KDE muốn chuyển từ KHTML sang WebKit.[13]

Phát triển sau này

Vào tháng 11 năm 2007, dự án thông báo rằng đã hoàn thành hỗ trợ cho các phương tiện chức năng của HTML 5, cho phép các đoạn video nhúng được dựng hình và điều khiển trong WebKit.[14]

Vào ngày 2 tháng 6, 2008, dự án WebKit thông báo rằng họ đã viết lại JavaScriptCore thành "SquirrelFish", một trình thông dịch bytecode.[15][16] Dự án tiếp tục phát triển nó thành SquirrelFish Extreme (viết tắt SFX), ra mắt vào ngày 18 tháng 9, 2008, hoạt động bằng cách biên dịch JavaScript thành mã máy, việc từ bỏ thông dịch bytecode đã giúp tăng tốc các đoạn mã JavaScript.[17] Trước đây SFX chỉ hỗ trợ kiến trúc x86, nhưng vào cuối tháng 1 năm 2009 SFX đã có thể chạy trong Mac OS X với kiến trúc x86-64 và nó đã vượt qua tất cả các bài kiểm tra trên nền tảng này.[18]

Tài liệu tham khảo

WikiPedia: WebKit http://developer.apple.com/opensource/internet/web... http://arstechnica.com/journals/apple.ars/2007/06/... http://arstechnica.com/journals/linux.ars/2007/07/... http://www.atoker.com/blog/2007/06/12/webkitgtk-is... http://blogoscoped.com/archive/2008-09-01-n47.html http://news.cnet.com/Open-source-divorce-for-Apple... http://www.codinghorror.com/blog/archives/001023.h... http://www.engadget.com/2009/01/08/palm-pre-in-dep... http://www.foxnews.com/story/0,2933,368182,00.html http://www.google.com/googlebooks/chrome/